package work;

import java.util.Scanner;
import java.util.regex.Pattern;

// 输入一行字符，分别统计出英文字母，空格，数字，和其他字符的个数
public class Work1 {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        System.out.print("请输入一行字符串：");
        String str=input.nextLine();
        System.out.println("输出结果："+str);

        //匹配数字
        Pattern pattNo1= Pattern.compile("^\\d$");

        //匹配英文字母
        Pattern pattNo2= Pattern.compile("^[a-zA-z]$");

        char[] list=str.toCharArray();
        int x=0,y=0,z=0,m=0;
        for (char c : list) {
            if(pattNo1.matcher(String.valueOf(c)).matches()){
                x++;
            } else if (pattNo2.matcher(String.valueOf(c)).matches()) {
                y++;
            }else if(String.valueOf(c).equals(" ")){
                z++;
            }else{
                m++;
            }
        }

        System.out.println("数字的个数："+x);
        System.out.println("字母的个数："+y);
        System.out.println("空格的个数："+z);
        System.out.println("其他字符："+m);
    }
}
